Cloud computing is a form of network-accessible computing that provides shared computer processing resources and data to computers and other devices on demand over the Internet. Cloud computing enables the on-demand access to a shared pool of configurable computing resources, such as computer networks, servers, storage, applications, and services. The resources can be rapidly provisioned and released to a user with reduced management effort relative to the maintenance of local resources by the user. In some implementations, cloud computing and storage enables users, including enterprises, to store and process their data in third-party data centers that may be located far from the user, including distances that range from within a same city to across the world. The reliability of cloud computing is enhanced by the use of multiple redundant sites, where multiple copies of the same applications/services may be dispersed around different data centers (or other cloud computing sites), which enables safety in the form of disaster recovery when some cloud computing resources are damaged or otherwise fail.
Cloud applications and platforms usually have some notion of fault isolation in them by segregating resources into logical divisions. Each logical division may a corresponding number and variety of resources, and may be duplicated at multiple sites. Such resources, such as servers, switches, and other computing devices that run software and/or firmware, may need to be periodically updated with the latest software/firmware. When dealing with a single service, the update strategy is relatively simple: update the service in isolation at one logical division to see if the changes work, then release the update to other logical divisions. The greater the number of services/applications needing to be updated, and the greater the number of different hardware configurations running the services/applications, the greater the deployment time of the updates.